<template>
    <div class="cmt-container">
        <h3>发表评论</h3>
        <hr>
        <textarea placeholder="请输入要BB的内容（最多吐槽120字）" v-model="content" maxlength="120"></textarea>
        <mt-button type="primary" size="large" @click="postComment">发布评论</mt-button>
        <div class="cmt-list">
            <div class="cmt-item" v-for="(item, i) in comments" :key="item.add_time">
                <div class="cmt-title">
                    <span>第{{ i + 1 }}楼</span>&nbsp;&nbsp;<span>用户：{{ item.user_name }}</span>&nbsp;&nbsp;<span>发表时间：{{ item.add_time | dateFormat }}</span>
                </div>
                <div class="cmt-body">
                    {{ (item.content === 'undefined' || item.content.length === 0) ? '此用户很懒' : item.content }}
                </div>
            </div>
        </div>
        <mt-button type="danger" size="large" plain @click="getMore">加载更多</mt-button>
    </div>
</template>
<script>
import { Toast } from 'mint-ui'
export default {
    data: function(){
        return {
            pageIndex: 1,
            comments: [],
            content: ''
        }
    },
    props: ["id"],
    created(){
        this.getComments()
    },
    methods: {
        postComment(){
            let content = this.content.trim();
            if (content.length === 0) {
                Toast('评论内容不能为空')
                return false
            }
            this.$http
                .post('api/postcomment/' + this.id, {content: content})
                .then(result => {
                    if (result.body.status === 0) {
                        this.comments.unshift({
                            add_time: (new Date()).toString(),
                            content: content,
                            user_name: '匿名用户'
                        });
                        this.content = '';
                    } else {
                        Toast('发布评论失败');
                    }

                })
        },
        getMore(){
            this.pageIndex++;
            this.getComments();
        },
        getComments(){
            this.$http
                .get('api/getcomments/' + this.id, {params:{pageindex: this.pageIndex}}).then(result => {
                    if (result.body.status === 0) {
                        this.comments.push(...result.body.message);
                    } else {
                        Toast('获取评论失败');
                    }
                })
        }
    }
}
</script>
<style lang="scss" scoped>
.cmt-container{
    h3{
        font-size: 18px;
    }
    textarea{
        font-size: 14px;
        height: 85px;
        margin: 0;
    }
    .cmt-list{
        margin: 5px 0;
        .cmt-item{
            font-size: 13px;
            .cmt-title{
                line-height: 30px;
                background-color: #ccc;
            }
            .cmt-body{
                text-indent: 2em;
                line-height: 35px;
            }
        }
    }
}
</style>

